package Interfaz;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import models.Empleados;
import models.Roles;

public class AlmacenWindow extends JFrame {
	
	
	private static final long serialVersionUID = 4014144106666652993L;

			
	JPanel panel;
	
	JLabel actionBar;
	JLabel nombreUsuario;
	JLabel marcoUser;
	JLabel logoSmall;
	JButton find;
	JTextField findText;
	JButton proveedorBtn;
	JButton stockBtn;
	JButton pedidoBtn;
	
	JLabel proveedorText;
	JLabel stockText;
	JLabel pedidoText;
	
	Empleados empleado;
	
	public AlmacenWindow(Empleados empleado2){
		
		this.empleado = empleado2;		
		initJFrameComponetsAlmacen();
		addListenersAlmacen();
	}
	
	public void initJFrameComponetsAlmacen(){
		//instanciar declaraciones
		
		panel = new JPanel();
		logoSmall = new JLabel(new ImageIcon(getClass().getResource(
				"raw/logo_small.jpg")));
		actionBar = new JLabel();
		nombreUsuario = new JLabel(empleado.getNombre() + " "+empleado.getApellido1());
		marcoUser = new JLabel();
		find = new JButton();
		findText = new JTextField();
		proveedorBtn = new JButton();
		stockBtn = new JButton();
		pedidoBtn = new JButton();
		
		proveedorText = new JLabel("Proveedores", JLabel.CENTER);
		stockText = new JLabel("Stock", JLabel.CENTER);
		pedidoText = new JLabel("Pedidos", JLabel.CENTER);
		
		
		this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		
		actionBar.setBackground(Color.BLACK);
		actionBar.setForeground(Color.BLACK);
		actionBar.setBounds(0, 0, 800, 32);
		actionBar.setOpaque(true);
		
		marcoUser.setBackground(new Color(0xEEEEEE));
		marcoUser.setForeground(new Color(0xEEEEEE));
		marcoUser.setBounds(32, 10, 98, 98);
		marcoUser.setOpaque(true);
		logoSmall.setBounds(36, 14, 90, 90);
		nombreUsuario.setBounds(150, 3, 256, 25);
		nombreUsuario.setForeground(Color.WHITE);
		nombreUsuario.setFont(new Font("Serif", Font.BOLD, 18));
		find.setBounds(768, 0, 32, 32);
		find.setOpaque(true);
		find.setBackground(Color.GRAY);
		find.setForeground(Color.WHITE);
		find.setBorder(null);
		find.setIcon(new ImageIcon(getClass().getResource("raw/find.png")));
		findText.setBounds(668, 0, 100, 32);
		findText.setBorder(null);
		findText.setForeground(Color.WHITE);
		findText.setBackground(Color.GRAY);
		setSecurityLevel(empleado.getRoles());
		
		this.add(nombreUsuario);
		this.add(marcoUser);
		this.add(actionBar);
		this.add(logoSmall);
		this.add(findText);
		this.add(find);
		
		Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
		this.setBounds(((d.width/2)-400), ((d.height/2)-300), 800, 600);
		panel.setBackground(Color.WHITE);
		this.setTitle("MyBolos ERP  ->  " + empleado.getNombre() +" " + empleado.getApellido1());
		this.add(panel);
		this.setBackground(Color.WHITE);
		this.setVisible(true);
		this.setResizable(false);
	}
	
	public void setSecurityLevel(Roles roles){
		addProveedorBtn(roles.getPAlmacen());
		addStockBtn(roles.getPAccesorios());
		addPedidoBtn(roles.getPAlmacen());
	}
	
		public void addProveedorBtn (byte b){
			
			proveedorBtn.setForeground(Color.BLACK);
			proveedorBtn.setBackground(Color.WHITE);
			proveedorBtn.setBorder(null);
			proveedorBtn.setIcon(new ImageIcon(getClass().getResource("raw/proveedores.png")));
			proveedorBtn.setBounds(125,200,128,128);
			proveedorText.setBounds(125, 334, 128, 20);
			proveedorBtn.setEnabled(false);
			
			
			if(b == 1) proveedorBtn.setEnabled(true);
			
			this.add(proveedorBtn);
			this.add(proveedorText);
			
		}
		
		public void addStockBtn (byte b){
					
					stockBtn.setForeground(Color.BLACK);
					stockBtn.setBackground(Color.WHITE);
					stockBtn.setBorder(null);
					stockBtn.setIcon(new ImageIcon(getClass().getResource("raw/stock.png")));
					stockBtn.setBounds(323,200,128,128);
					stockText.setBounds(323, 334, 128, 20);
					stockBtn.setEnabled(false);
					
				
					if(b == 1)	stockBtn.setEnabled(true);
					
					this.add(stockBtn);
					this.add(stockText);
					
				}
	
		public void addPedidoBtn (byte b){
			
			pedidoBtn.setForeground(Color.BLACK);
			pedidoBtn.setBackground(Color.WHITE);
			pedidoBtn.setBorder(null);
			pedidoBtn.setIcon(new ImageIcon(getClass().getResource("raw/pedidos.png")));
			pedidoBtn.setBounds(521,200,128,128);
			pedidoText.setBounds(521, 334, 128, 20);
			pedidoBtn.setEnabled(false);
			
		
			if (b == 1)	pedidoBtn.setEnabled(true);
			
			this.add(pedidoBtn);
			this.add(pedidoText);
			
		}
		
		public void addListenersAlmacen(){
			
			proveedorBtn.addActionListener(new ActionListener(){
				
				public void actionPerformed(ActionEvent arg0){
					 new ProveedoresWindow(empleado);
				}
			});
			
			stockBtn.addActionListener(new ActionListener(){
				
				public void actionPerformed(ActionEvent arg0){
					 new StockWindow(empleado);
				}
			});
			
			pedidoBtn.addActionListener(new ActionListener(){
				
				public void actionPerformed(ActionEvent arg0){
					 new PedidoWindow(empleado);
				}
			});
			 
		}
	
	
	
}
